<?php
require_once("templates/standard/benutzer/benutzerUI.php");
class benutzer implements settings {
	protected $benutzer;
	protected $passwort;
	protected $email;
	protected $mysqli;
	protected $mysqliresult;
	protected $enckey;
	
	function useMysqli($mysqli) {
		$this->mysqli = $mysqli;
	}
	
	function cleanInput($input) {
		$ausgabe = mysql_escape_string(stripslashes($input));
		return $ausgabe;
	}
	
	/* Säubert Eingaben des Benutzers (Schutz gegen SQL-Injections und Verschlüsselung des Passworts)
	 * Startet die Funktion checkUser
	 */
	function einloggen($user, $pw) {
		$this->benutzer = $this->cleanInput($user);
		$this->passwort = $this->cleanInput($pw);
		
		$this->enckey = sha1(sicherheit::KEY);
		$salt = sha1(md5($this->passwort)).$this->enckey;
		$this->passwort = md5($this->passwort.$salt);	

		// Führt Stored Function usercheck() auf MySQL-Server aus
		$result = $this->mysqli->query('SELECT usercheck("'.$this->benutzer.'", "'.$this->passwort.'");');
		$row = $result->fetch_row();
		if ($row[0] == $this->benutzer) {
			$ausgabe = Language::LANG_LOGIN_SUCCESSFUL;
		}
		else {
			$ausgabe = Language::LANG_LOGIN_UNSUCCESSFUL;
		}
		return $ausgabe;
	}
	
	function registrieren($user,$pw,$email) {
		$this->benutzer = $this->cleanInput($user);
		$this->passwort = $this->cleanInput($pw);
		$this->email = $this->cleanInput($email);
		
		$this->enckey = sha1(sicherheit::KEY);
		$salt = sha1(md5($this->passwort)).$this->enckey;
		$this->passwort = md5($this->passwort.$salt);
		
		// Prueft ob Benutzer oder E-Mail bereits vorhanden sind
		$result1 = $this->mysqli->query('SELECT search_username_email("'.$this->benutzer.'","'.$this->email.'");');
		$row1 = $result1->fetch_row();
		if ($row1[0] >= 1) $ausgabe = "Benutzername oder Mail-Adresse bereits verwendet";
		else {
			if ($result2 = $this->mysqli->query('CALL insertuser("'.$this->benutzer.'","'.$this->passwort.'","'.$this->email.'");')) {
				$ausgabe = Language::LANG_REGISTER_SUCCESSFUL;
			}
			else $ausgabe = Language::LANG_REGISTER_UNSUCCESSFUL;
		}
		return $ausgabe;
	}
}
?>